/**
 * @class common.tab
 * @extends common.base.object
 * tab效果
 */
define(function (require) {
    var Base = require('common/base/object');

    return Base.extend({
        initialize: function (params) {
            var _this = this;
            Base.prototype.initialize.apply(_this, [params]);
            _this.params = _.defaults(params || {}, {
                wrap: '.J_tab',
                tab_title: '.J_tab_title',
                tab_content: '.J_tab_content',
                tab_item: '.J_item',
                current_cls: 'current'
            });
            var tab_title_item = _.sprintf('%s %s', _this.params.tab_title, _this.params.tab_item);
            var tab_content_item = _.sprintf('%s %s', _this.params.tab_content, _this.params.tab_item);

            $(_this.params.wrap).each(function () {
                var ctx = this;
                $(tab_title_item, this).click(function () {
                    $(this).addClass(_this.params.current_cls).siblings().removeClass(_this.params.current_cls);
                    $(tab_content_item, ctx)
                        .eq($(this).index())
                        .show()
                        .siblings()
                        .hide();
                });
            });
        }
    });
});